package tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.parameterSize.nullableObject

import com.fasterxml.jackson.annotation.JsonCreator
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import tools.jackson.module.kotlin.assertReflectEquals
import tools.jackson.module.kotlin.defaultMapper
import tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.NullableObject
import tools.jackson.module.kotlin.readValue

/**
 * Up to argument size 32 there is one mask argument for the default argument,
 * 33 ~ 64 there are two, and 65 there are three, so each boundary value is tested.
 * Also, the maximum argument size that can be set in the constructor is 244, so that case is tested as well.
 */
class DeserializeByFactoryWithDefaultArgumentsTest {
    data class Dst32(
        val p00: NullableObject?,
        val p01: NullableObject?,
        val p02: NullableObject?,
        val p03: NullableObject?,
        val p04: NullableObject?,
        val p05: NullableObject?,
        val p06: NullableObject?,
        val p07: NullableObject?,
        val p08: NullableObject?,
        val p09: NullableObject?,
        val p10: NullableObject?,
        val p11: NullableObject?,
        val p12: NullableObject?,
        val p13: NullableObject?,
        val p14: NullableObject?,
        val p15: NullableObject?,
        val p16: NullableObject?,
        val p17: NullableObject?,
        val p18: NullableObject?,
        val p19: NullableObject?,
        val p20: NullableObject?,
        val p21: NullableObject?,
        val p22: NullableObject?,
        val p23: NullableObject?,
        val p24: NullableObject?,
        val p25: NullableObject?,
        val p26: NullableObject?,
        val p27: NullableObject?,
        val p28: NullableObject?,
        val p29: NullableObject?,
        val p30: NullableObject?,
        val p31: NullableObject?
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: NullableObject? = NullableObject("p00"),
                q01: NullableObject? = NullableObject("p01"),
                q02: NullableObject? = NullableObject("p02"),
                q03: NullableObject? = NullableObject("p03"),
                q04: NullableObject? = NullableObject("p04"),
                q05: NullableObject? = NullableObject("p05"),
                q06: NullableObject? = NullableObject("p06"),
                q07: NullableObject? = NullableObject("p07"),
                q08: NullableObject? = NullableObject("p08"),
                q09: NullableObject? = NullableObject("p09"),
                q10: NullableObject? = NullableObject("p10"),
                q11: NullableObject? = NullableObject("p11"),
                q12: NullableObject? = NullableObject("p12"),
                q13: NullableObject? = NullableObject("p13"),
                q14: NullableObject? = NullableObject("p14"),
                q15: NullableObject? = NullableObject("p15"),
                q16: NullableObject? = NullableObject("p16"),
                q17: NullableObject? = NullableObject("p17"),
                q18: NullableObject? = NullableObject("p18"),
                q19: NullableObject? = NullableObject("p19"),
                q20: NullableObject? = NullableObject("p20"),
                q21: NullableObject? = NullableObject("p21"),
                q22: NullableObject? = NullableObject("p22"),
                q23: NullableObject? = NullableObject("p23"),
                q24: NullableObject? = NullableObject("p24"),
                q25: NullableObject? = NullableObject("p25"),
                q26: NullableObject? = NullableObject("p26"),
                q27: NullableObject? = NullableObject("p27"),
                q28: NullableObject? = NullableObject("p28"),
                q29: NullableObject? = NullableObject("p29"),
                q30: NullableObject? = NullableObject("p30"),
                q31: NullableObject? = NullableObject("p31")
            ) = Dst32(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31
            )
        }
    }

    @Test
    fun test32() {
        assertEquals(Dst32.creator(), defaultMapper.readValue<Dst32>("{}"))
    }

    data class Dst33(
        val p00: NullableObject?,
        val p01: NullableObject?,
        val p02: NullableObject?,
        val p03: NullableObject?,
        val p04: NullableObject?,
        val p05: NullableObject?,
        val p06: NullableObject?,
        val p07: NullableObject?,
        val p08: NullableObject?,
        val p09: NullableObject?,
        val p10: NullableObject?,
        val p11: NullableObject?,
        val p12: NullableObject?,
        val p13: NullableObject?,
        val p14: NullableObject?,
        val p15: NullableObject?,
        val p16: NullableObject?,
        val p17: NullableObject?,
        val p18: NullableObject?,
        val p19: NullableObject?,
        val p20: NullableObject?,
        val p21: NullableObject?,
        val p22: NullableObject?,
        val p23: NullableObject?,
        val p24: NullableObject?,
        val p25: NullableObject?,
        val p26: NullableObject?,
        val p27: NullableObject?,
        val p28: NullableObject?,
        val p29: NullableObject?,
        val p30: NullableObject?,
        val p31: NullableObject?,
        val p32: NullableObject?
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: NullableObject? = NullableObject("p00"),
                q01: NullableObject? = NullableObject("p01"),
                q02: NullableObject? = NullableObject("p02"),
                q03: NullableObject? = NullableObject("p03"),
                q04: NullableObject? = NullableObject("p04"),
                q05: NullableObject? = NullableObject("p05"),
                q06: NullableObject? = NullableObject("p06"),
                q07: NullableObject? = NullableObject("p07"),
                q08: NullableObject? = NullableObject("p08"),
                q09: NullableObject? = NullableObject("p09"),
                q10: NullableObject? = NullableObject("p10"),
                q11: NullableObject? = NullableObject("p11"),
                q12: NullableObject? = NullableObject("p12"),
                q13: NullableObject? = NullableObject("p13"),
                q14: NullableObject? = NullableObject("p14"),
                q15: NullableObject? = NullableObject("p15"),
                q16: NullableObject? = NullableObject("p16"),
                q17: NullableObject? = NullableObject("p17"),
                q18: NullableObject? = NullableObject("p18"),
                q19: NullableObject? = NullableObject("p19"),
                q20: NullableObject? = NullableObject("p20"),
                q21: NullableObject? = NullableObject("p21"),
                q22: NullableObject? = NullableObject("p22"),
                q23: NullableObject? = NullableObject("p23"),
                q24: NullableObject? = NullableObject("p24"),
                q25: NullableObject? = NullableObject("p25"),
                q26: NullableObject? = NullableObject("p26"),
                q27: NullableObject? = NullableObject("p27"),
                q28: NullableObject? = NullableObject("p28"),
                q29: NullableObject? = NullableObject("p29"),
                q30: NullableObject? = NullableObject("p30"),
                q31: NullableObject? = NullableObject("p31"),
                q32: NullableObject? = NullableObject("p32")
            ) = Dst33(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32
            )
        }
    }

    @Test
    fun test33() {
        assertEquals(Dst33.creator(), defaultMapper.readValue<Dst33>("{}"))
    }

    data class Dst64(
        val p00: NullableObject?,
        val p01: NullableObject?,
        val p02: NullableObject?,
        val p03: NullableObject?,
        val p04: NullableObject?,
        val p05: NullableObject?,
        val p06: NullableObject?,
        val p07: NullableObject?,
        val p08: NullableObject?,
        val p09: NullableObject?,
        val p10: NullableObject?,
        val p11: NullableObject?,
        val p12: NullableObject?,
        val p13: NullableObject?,
        val p14: NullableObject?,
        val p15: NullableObject?,
        val p16: NullableObject?,
        val p17: NullableObject?,
        val p18: NullableObject?,
        val p19: NullableObject?,
        val p20: NullableObject?,
        val p21: NullableObject?,
        val p22: NullableObject?,
        val p23: NullableObject?,
        val p24: NullableObject?,
        val p25: NullableObject?,
        val p26: NullableObject?,
        val p27: NullableObject?,
        val p28: NullableObject?,
        val p29: NullableObject?,
        val p30: NullableObject?,
        val p31: NullableObject?,
        val p32: NullableObject?,
        val p33: NullableObject?,
        val p34: NullableObject?,
        val p35: NullableObject?,
        val p36: NullableObject?,
        val p37: NullableObject?,
        val p38: NullableObject?,
        val p39: NullableObject?,
        val p40: NullableObject?,
        val p41: NullableObject?,
        val p42: NullableObject?,
        val p43: NullableObject?,
        val p44: NullableObject?,
        val p45: NullableObject?,
        val p46: NullableObject?,
        val p47: NullableObject?,
        val p48: NullableObject?,
        val p49: NullableObject?,
        val p50: NullableObject?,
        val p51: NullableObject?,
        val p52: NullableObject?,
        val p53: NullableObject?,
        val p54: NullableObject?,
        val p55: NullableObject?,
        val p56: NullableObject?,
        val p57: NullableObject?,
        val p58: NullableObject?,
        val p59: NullableObject?,
        val p60: NullableObject?,
        val p61: NullableObject?,
        val p62: NullableObject?,
        val p63: NullableObject?
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: NullableObject? = NullableObject("p00"),
                q01: NullableObject? = NullableObject("p01"),
                q02: NullableObject? = NullableObject("p02"),
                q03: NullableObject? = NullableObject("p03"),
                q04: NullableObject? = NullableObject("p04"),
                q05: NullableObject? = NullableObject("p05"),
                q06: NullableObject? = NullableObject("p06"),
                q07: NullableObject? = NullableObject("p07"),
                q08: NullableObject? = NullableObject("p08"),
                q09: NullableObject? = NullableObject("p09"),
                q10: NullableObject? = NullableObject("p10"),
                q11: NullableObject? = NullableObject("p11"),
                q12: NullableObject? = NullableObject("p12"),
                q13: NullableObject? = NullableObject("p13"),
                q14: NullableObject? = NullableObject("p14"),
                q15: NullableObject? = NullableObject("p15"),
                q16: NullableObject? = NullableObject("p16"),
                q17: NullableObject? = NullableObject("p17"),
                q18: NullableObject? = NullableObject("p18"),
                q19: NullableObject? = NullableObject("p19"),
                q20: NullableObject? = NullableObject("p20"),
                q21: NullableObject? = NullableObject("p21"),
                q22: NullableObject? = NullableObject("p22"),
                q23: NullableObject? = NullableObject("p23"),
                q24: NullableObject? = NullableObject("p24"),
                q25: NullableObject? = NullableObject("p25"),
                q26: NullableObject? = NullableObject("p26"),
                q27: NullableObject? = NullableObject("p27"),
                q28: NullableObject? = NullableObject("p28"),
                q29: NullableObject? = NullableObject("p29"),
                q30: NullableObject? = NullableObject("p30"),
                q31: NullableObject? = NullableObject("p31"),
                q32: NullableObject? = NullableObject("p32"),
                q33: NullableObject? = NullableObject("p33"),
                q34: NullableObject? = NullableObject("p34"),
                q35: NullableObject? = NullableObject("p35"),
                q36: NullableObject? = NullableObject("p36"),
                q37: NullableObject? = NullableObject("p37"),
                q38: NullableObject? = NullableObject("p38"),
                q39: NullableObject? = NullableObject("p39"),
                q40: NullableObject? = NullableObject("p40"),
                q41: NullableObject? = NullableObject("p41"),
                q42: NullableObject? = NullableObject("p42"),
                q43: NullableObject? = NullableObject("p43"),
                q44: NullableObject? = NullableObject("p44"),
                q45: NullableObject? = NullableObject("p45"),
                q46: NullableObject? = NullableObject("p46"),
                q47: NullableObject? = NullableObject("p47"),
                q48: NullableObject? = NullableObject("p48"),
                q49: NullableObject? = NullableObject("p49"),
                q50: NullableObject? = NullableObject("p50"),
                q51: NullableObject? = NullableObject("p51"),
                q52: NullableObject? = NullableObject("p52"),
                q53: NullableObject? = NullableObject("p53"),
                q54: NullableObject? = NullableObject("p54"),
                q55: NullableObject? = NullableObject("p55"),
                q56: NullableObject? = NullableObject("p56"),
                q57: NullableObject? = NullableObject("p57"),
                q58: NullableObject? = NullableObject("p58"),
                q59: NullableObject? = NullableObject("p59"),
                q60: NullableObject? = NullableObject("p60"),
                q61: NullableObject? = NullableObject("p61"),
                q62: NullableObject? = NullableObject("p62"),
                q63: NullableObject? = NullableObject("p63")
            ) = Dst64(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63
            )
        }
    }

    @Test
    fun test64() {
        assertEquals(Dst64.creator(), defaultMapper.readValue<Dst64>("{}"))
    }

    data class Dst65(
        val p00: NullableObject?,
        val p01: NullableObject?,
        val p02: NullableObject?,
        val p03: NullableObject?,
        val p04: NullableObject?,
        val p05: NullableObject?,
        val p06: NullableObject?,
        val p07: NullableObject?,
        val p08: NullableObject?,
        val p09: NullableObject?,
        val p10: NullableObject?,
        val p11: NullableObject?,
        val p12: NullableObject?,
        val p13: NullableObject?,
        val p14: NullableObject?,
        val p15: NullableObject?,
        val p16: NullableObject?,
        val p17: NullableObject?,
        val p18: NullableObject?,
        val p19: NullableObject?,
        val p20: NullableObject?,
        val p21: NullableObject?,
        val p22: NullableObject?,
        val p23: NullableObject?,
        val p24: NullableObject?,
        val p25: NullableObject?,
        val p26: NullableObject?,
        val p27: NullableObject?,
        val p28: NullableObject?,
        val p29: NullableObject?,
        val p30: NullableObject?,
        val p31: NullableObject?,
        val p32: NullableObject?,
        val p33: NullableObject?,
        val p34: NullableObject?,
        val p35: NullableObject?,
        val p36: NullableObject?,
        val p37: NullableObject?,
        val p38: NullableObject?,
        val p39: NullableObject?,
        val p40: NullableObject?,
        val p41: NullableObject?,
        val p42: NullableObject?,
        val p43: NullableObject?,
        val p44: NullableObject?,
        val p45: NullableObject?,
        val p46: NullableObject?,
        val p47: NullableObject?,
        val p48: NullableObject?,
        val p49: NullableObject?,
        val p50: NullableObject?,
        val p51: NullableObject?,
        val p52: NullableObject?,
        val p53: NullableObject?,
        val p54: NullableObject?,
        val p55: NullableObject?,
        val p56: NullableObject?,
        val p57: NullableObject?,
        val p58: NullableObject?,
        val p59: NullableObject?,
        val p60: NullableObject?,
        val p61: NullableObject?,
        val p62: NullableObject?,
        val p63: NullableObject?,
        val p64: NullableObject?
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: NullableObject? = NullableObject("p00"),
                q01: NullableObject? = NullableObject("p01"),
                q02: NullableObject? = NullableObject("p02"),
                q03: NullableObject? = NullableObject("p03"),
                q04: NullableObject? = NullableObject("p04"),
                q05: NullableObject? = NullableObject("p05"),
                q06: NullableObject? = NullableObject("p06"),
                q07: NullableObject? = NullableObject("p07"),
                q08: NullableObject? = NullableObject("p08"),
                q09: NullableObject? = NullableObject("p09"),
                q10: NullableObject? = NullableObject("p10"),
                q11: NullableObject? = NullableObject("p11"),
                q12: NullableObject? = NullableObject("p12"),
                q13: NullableObject? = NullableObject("p13"),
                q14: NullableObject? = NullableObject("p14"),
                q15: NullableObject? = NullableObject("p15"),
                q16: NullableObject? = NullableObject("p16"),
                q17: NullableObject? = NullableObject("p17"),
                q18: NullableObject? = NullableObject("p18"),
                q19: NullableObject? = NullableObject("p19"),
                q20: NullableObject? = NullableObject("p20"),
                q21: NullableObject? = NullableObject("p21"),
                q22: NullableObject? = NullableObject("p22"),
                q23: NullableObject? = NullableObject("p23"),
                q24: NullableObject? = NullableObject("p24"),
                q25: NullableObject? = NullableObject("p25"),
                q26: NullableObject? = NullableObject("p26"),
                q27: NullableObject? = NullableObject("p27"),
                q28: NullableObject? = NullableObject("p28"),
                q29: NullableObject? = NullableObject("p29"),
                q30: NullableObject? = NullableObject("p30"),
                q31: NullableObject? = NullableObject("p31"),
                q32: NullableObject? = NullableObject("p32"),
                q33: NullableObject? = NullableObject("p33"),
                q34: NullableObject? = NullableObject("p34"),
                q35: NullableObject? = NullableObject("p35"),
                q36: NullableObject? = NullableObject("p36"),
                q37: NullableObject? = NullableObject("p37"),
                q38: NullableObject? = NullableObject("p38"),
                q39: NullableObject? = NullableObject("p39"),
                q40: NullableObject? = NullableObject("p40"),
                q41: NullableObject? = NullableObject("p41"),
                q42: NullableObject? = NullableObject("p42"),
                q43: NullableObject? = NullableObject("p43"),
                q44: NullableObject? = NullableObject("p44"),
                q45: NullableObject? = NullableObject("p45"),
                q46: NullableObject? = NullableObject("p46"),
                q47: NullableObject? = NullableObject("p47"),
                q48: NullableObject? = NullableObject("p48"),
                q49: NullableObject? = NullableObject("p49"),
                q50: NullableObject? = NullableObject("p50"),
                q51: NullableObject? = NullableObject("p51"),
                q52: NullableObject? = NullableObject("p52"),
                q53: NullableObject? = NullableObject("p53"),
                q54: NullableObject? = NullableObject("p54"),
                q55: NullableObject? = NullableObject("p55"),
                q56: NullableObject? = NullableObject("p56"),
                q57: NullableObject? = NullableObject("p57"),
                q58: NullableObject? = NullableObject("p58"),
                q59: NullableObject? = NullableObject("p59"),
                q60: NullableObject? = NullableObject("p60"),
                q61: NullableObject? = NullableObject("p61"),
                q62: NullableObject? = NullableObject("p62"),
                q63: NullableObject? = NullableObject("p63"),
                q64: NullableObject? = NullableObject("p64")
            ) = Dst65(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63,
                q64
            )
        }
    }

    @Test
    fun test65() {
        assertEquals(Dst65.creator(), defaultMapper.readValue<Dst65>("{}"))
    }

    // It cannot be a data class because the generated method would exceed the argument size limit.
    class DstMax(
        val p000: NullableObject?,
        val p001: NullableObject?,
        val p002: NullableObject?,
        val p003: NullableObject?,
        val p004: NullableObject?,
        val p005: NullableObject?,
        val p006: NullableObject?,
        val p007: NullableObject?,
        val p008: NullableObject?,
        val p009: NullableObject?,
        val p010: NullableObject?,
        val p011: NullableObject?,
        val p012: NullableObject?,
        val p013: NullableObject?,
        val p014: NullableObject?,
        val p015: NullableObject?,
        val p016: NullableObject?,
        val p017: NullableObject?,
        val p018: NullableObject?,
        val p019: NullableObject?,
        val p020: NullableObject?,
        val p021: NullableObject?,
        val p022: NullableObject?,
        val p023: NullableObject?,
        val p024: NullableObject?,
        val p025: NullableObject?,
        val p026: NullableObject?,
        val p027: NullableObject?,
        val p028: NullableObject?,
        val p029: NullableObject?,
        val p030: NullableObject?,
        val p031: NullableObject?,
        val p032: NullableObject?,
        val p033: NullableObject?,
        val p034: NullableObject?,
        val p035: NullableObject?,
        val p036: NullableObject?,
        val p037: NullableObject?,
        val p038: NullableObject?,
        val p039: NullableObject?,
        val p040: NullableObject?,
        val p041: NullableObject?,
        val p042: NullableObject?,
        val p043: NullableObject?,
        val p044: NullableObject?,
        val p045: NullableObject?,
        val p046: NullableObject?,
        val p047: NullableObject?,
        val p048: NullableObject?,
        val p049: NullableObject?,
        val p050: NullableObject?,
        val p051: NullableObject?,
        val p052: NullableObject?,
        val p053: NullableObject?,
        val p054: NullableObject?,
        val p055: NullableObject?,
        val p056: NullableObject?,
        val p057: NullableObject?,
        val p058: NullableObject?,
        val p059: NullableObject?,
        val p060: NullableObject?,
        val p061: NullableObject?,
        val p062: NullableObject?,
        val p063: NullableObject?,
        val p064: NullableObject?,
        val p065: NullableObject?,
        val p066: NullableObject?,
        val p067: NullableObject?,
        val p068: NullableObject?,
        val p069: NullableObject?,
        val p070: NullableObject?,
        val p071: NullableObject?,
        val p072: NullableObject?,
        val p073: NullableObject?,
        val p074: NullableObject?,
        val p075: NullableObject?,
        val p076: NullableObject?,
        val p077: NullableObject?,
        val p078: NullableObject?,
        val p079: NullableObject?,
        val p080: NullableObject?,
        val p081: NullableObject?,
        val p082: NullableObject?,
        val p083: NullableObject?,
        val p084: NullableObject?,
        val p085: NullableObject?,
        val p086: NullableObject?,
        val p087: NullableObject?,
        val p088: NullableObject?,
        val p089: NullableObject?,
        val p090: NullableObject?,
        val p091: NullableObject?,
        val p092: NullableObject?,
        val p093: NullableObject?,
        val p094: NullableObject?,
        val p095: NullableObject?,
        val p096: NullableObject?,
        val p097: NullableObject?,
        val p098: NullableObject?,
        val p099: NullableObject?,
        val p100: NullableObject?,
        val p101: NullableObject?,
        val p102: NullableObject?,
        val p103: NullableObject?,
        val p104: NullableObject?,
        val p105: NullableObject?,
        val p106: NullableObject?,
        val p107: NullableObject?,
        val p108: NullableObject?,
        val p109: NullableObject?,
        val p110: NullableObject?,
        val p111: NullableObject?,
        val p112: NullableObject?,
        val p113: NullableObject?,
        val p114: NullableObject?,
        val p115: NullableObject?,
        val p116: NullableObject?,
        val p117: NullableObject?,
        val p118: NullableObject?,
        val p119: NullableObject?,
        val p120: NullableObject?,
        val p121: NullableObject?,
        val p122: NullableObject?,
        val p123: NullableObject?,
        val p124: NullableObject?,
        val p125: NullableObject?,
        val p126: NullableObject?,
        val p127: NullableObject?,
        val p128: NullableObject?,
        val p129: NullableObject?,
        val p130: NullableObject?,
        val p131: NullableObject?,
        val p132: NullableObject?,
        val p133: NullableObject?,
        val p134: NullableObject?,
        val p135: NullableObject?,
        val p136: NullableObject?,
        val p137: NullableObject?,
        val p138: NullableObject?,
        val p139: NullableObject?,
        val p140: NullableObject?,
        val p141: NullableObject?,
        val p142: NullableObject?,
        val p143: NullableObject?,
        val p144: NullableObject?,
        val p145: NullableObject?,
        val p146: NullableObject?,
        val p147: NullableObject?,
        val p148: NullableObject?,
        val p149: NullableObject?,
        val p150: NullableObject?,
        val p151: NullableObject?,
        val p152: NullableObject?,
        val p153: NullableObject?,
        val p154: NullableObject?,
        val p155: NullableObject?,
        val p156: NullableObject?,
        val p157: NullableObject?,
        val p158: NullableObject?,
        val p159: NullableObject?,
        val p160: NullableObject?,
        val p161: NullableObject?,
        val p162: NullableObject?,
        val p163: NullableObject?,
        val p164: NullableObject?,
        val p165: NullableObject?,
        val p166: NullableObject?,
        val p167: NullableObject?,
        val p168: NullableObject?,
        val p169: NullableObject?,
        val p170: NullableObject?,
        val p171: NullableObject?,
        val p172: NullableObject?,
        val p173: NullableObject?,
        val p174: NullableObject?,
        val p175: NullableObject?,
        val p176: NullableObject?,
        val p177: NullableObject?,
        val p178: NullableObject?,
        val p179: NullableObject?,
        val p180: NullableObject?,
        val p181: NullableObject?,
        val p182: NullableObject?,
        val p183: NullableObject?,
        val p184: NullableObject?,
        val p185: NullableObject?,
        val p186: NullableObject?,
        val p187: NullableObject?,
        val p188: NullableObject?,
        val p189: NullableObject?,
        val p190: NullableObject?,
        val p191: NullableObject?,
        val p192: NullableObject?,
        val p193: NullableObject?,
        val p194: NullableObject?,
        val p195: NullableObject?,
        val p196: NullableObject?,
        val p197: NullableObject?,
        val p198: NullableObject?,
        val p199: NullableObject?,
        val p200: NullableObject?,
        val p201: NullableObject?,
        val p202: NullableObject?,
        val p203: NullableObject?,
        val p204: NullableObject?,
        val p205: NullableObject?,
        val p206: NullableObject?,
        val p207: NullableObject?,
        val p208: NullableObject?,
        val p209: NullableObject?,
        val p210: NullableObject?,
        val p211: NullableObject?,
        val p212: NullableObject?,
        val p213: NullableObject?,
        val p214: NullableObject?,
        val p215: NullableObject?,
        val p216: NullableObject?,
        val p217: NullableObject?,
        val p218: NullableObject?,
        val p219: NullableObject?,
        val p220: NullableObject?,
        val p221: NullableObject?,
        val p222: NullableObject?,
        val p223: NullableObject?,
        val p224: NullableObject?,
        val p225: NullableObject?,
        val p226: NullableObject?,
        val p227: NullableObject?,
        val p228: NullableObject?,
        val p229: NullableObject?,
        val p230: NullableObject?,
        val p231: NullableObject?,
        val p232: NullableObject?,
        val p233: NullableObject?,
        val p234: NullableObject?,
        val p235: NullableObject?,
        val p236: NullableObject?,
        val p237: NullableObject?,
        val p238: NullableObject?,
        val p239: NullableObject?,
        val p240: NullableObject?,
        val p241: NullableObject?,
        val p242: NullableObject?,
        val p243: NullableObject?
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q000: NullableObject? = NullableObject("p000"),
                q001: NullableObject? = NullableObject("p001"),
                q002: NullableObject? = NullableObject("p002"),
                q003: NullableObject? = NullableObject("p003"),
                q004: NullableObject? = NullableObject("p004"),
                q005: NullableObject? = NullableObject("p005"),
                q006: NullableObject? = NullableObject("p006"),
                q007: NullableObject? = NullableObject("p007"),
                q008: NullableObject? = NullableObject("p008"),
                q009: NullableObject? = NullableObject("p009"),
                q010: NullableObject? = NullableObject("p010"),
                q011: NullableObject? = NullableObject("p011"),
                q012: NullableObject? = NullableObject("p012"),
                q013: NullableObject? = NullableObject("p013"),
                q014: NullableObject? = NullableObject("p014"),
                q015: NullableObject? = NullableObject("p015"),
                q016: NullableObject? = NullableObject("p016"),
                q017: NullableObject? = NullableObject("p017"),
                q018: NullableObject? = NullableObject("p018"),
                q019: NullableObject? = NullableObject("p019"),
                q020: NullableObject? = NullableObject("p020"),
                q021: NullableObject? = NullableObject("p021"),
                q022: NullableObject? = NullableObject("p022"),
                q023: NullableObject? = NullableObject("p023"),
                q024: NullableObject? = NullableObject("p024"),
                q025: NullableObject? = NullableObject("p025"),
                q026: NullableObject? = NullableObject("p026"),
                q027: NullableObject? = NullableObject("p027"),
                q028: NullableObject? = NullableObject("p028"),
                q029: NullableObject? = NullableObject("p029"),
                q030: NullableObject? = NullableObject("p030"),
                q031: NullableObject? = NullableObject("p031"),
                q032: NullableObject? = NullableObject("p032"),
                q033: NullableObject? = NullableObject("p033"),
                q034: NullableObject? = NullableObject("p034"),
                q035: NullableObject? = NullableObject("p035"),
                q036: NullableObject? = NullableObject("p036"),
                q037: NullableObject? = NullableObject("p037"),
                q038: NullableObject? = NullableObject("p038"),
                q039: NullableObject? = NullableObject("p039"),
                q040: NullableObject? = NullableObject("p040"),
                q041: NullableObject? = NullableObject("p041"),
                q042: NullableObject? = NullableObject("p042"),
                q043: NullableObject? = NullableObject("p043"),
                q044: NullableObject? = NullableObject("p044"),
                q045: NullableObject? = NullableObject("p045"),
                q046: NullableObject? = NullableObject("p046"),
                q047: NullableObject? = NullableObject("p047"),
                q048: NullableObject? = NullableObject("p048"),
                q049: NullableObject? = NullableObject("p049"),
                q050: NullableObject? = NullableObject("p050"),
                q051: NullableObject? = NullableObject("p051"),
                q052: NullableObject? = NullableObject("p052"),
                q053: NullableObject? = NullableObject("p053"),
                q054: NullableObject? = NullableObject("p054"),
                q055: NullableObject? = NullableObject("p055"),
                q056: NullableObject? = NullableObject("p056"),
                q057: NullableObject? = NullableObject("p057"),
                q058: NullableObject? = NullableObject("p058"),
                q059: NullableObject? = NullableObject("p059"),
                q060: NullableObject? = NullableObject("p060"),
                q061: NullableObject? = NullableObject("p061"),
                q062: NullableObject? = NullableObject("p062"),
                q063: NullableObject? = NullableObject("p063"),
                q064: NullableObject? = NullableObject("p064"),
                q065: NullableObject? = NullableObject("p065"),
                q066: NullableObject? = NullableObject("p066"),
                q067: NullableObject? = NullableObject("p067"),
                q068: NullableObject? = NullableObject("p068"),
                q069: NullableObject? = NullableObject("p069"),
                q070: NullableObject? = NullableObject("p070"),
                q071: NullableObject? = NullableObject("p071"),
                q072: NullableObject? = NullableObject("p072"),
                q073: NullableObject? = NullableObject("p073"),
                q074: NullableObject? = NullableObject("p074"),
                q075: NullableObject? = NullableObject("p075"),
                q076: NullableObject? = NullableObject("p076"),
                q077: NullableObject? = NullableObject("p077"),
                q078: NullableObject? = NullableObject("p078"),
                q079: NullableObject? = NullableObject("p079"),
                q080: NullableObject? = NullableObject("p080"),
                q081: NullableObject? = NullableObject("p081"),
                q082: NullableObject? = NullableObject("p082"),
                q083: NullableObject? = NullableObject("p083"),
                q084: NullableObject? = NullableObject("p084"),
                q085: NullableObject? = NullableObject("p085"),
                q086: NullableObject? = NullableObject("p086"),
                q087: NullableObject? = NullableObject("p087"),
                q088: NullableObject? = NullableObject("p088"),
                q089: NullableObject? = NullableObject("p089"),
                q090: NullableObject? = NullableObject("p090"),
                q091: NullableObject? = NullableObject("p091"),
                q092: NullableObject? = NullableObject("p092"),
                q093: NullableObject? = NullableObject("p093"),
                q094: NullableObject? = NullableObject("p094"),
                q095: NullableObject? = NullableObject("p095"),
                q096: NullableObject? = NullableObject("p096"),
                q097: NullableObject? = NullableObject("p097"),
                q098: NullableObject? = NullableObject("p098"),
                q099: NullableObject? = NullableObject("p099"),
                q100: NullableObject? = NullableObject("p100"),
                q101: NullableObject? = NullableObject("p101"),
                q102: NullableObject? = NullableObject("p102"),
                q103: NullableObject? = NullableObject("p103"),
                q104: NullableObject? = NullableObject("p104"),
                q105: NullableObject? = NullableObject("p105"),
                q106: NullableObject? = NullableObject("p106"),
                q107: NullableObject? = NullableObject("p107"),
                q108: NullableObject? = NullableObject("p108"),
                q109: NullableObject? = NullableObject("p109"),
                q110: NullableObject? = NullableObject("p110"),
                q111: NullableObject? = NullableObject("p111"),
                q112: NullableObject? = NullableObject("p112"),
                q113: NullableObject? = NullableObject("p113"),
                q114: NullableObject? = NullableObject("p114"),
                q115: NullableObject? = NullableObject("p115"),
                q116: NullableObject? = NullableObject("p116"),
                q117: NullableObject? = NullableObject("p117"),
                q118: NullableObject? = NullableObject("p118"),
                q119: NullableObject? = NullableObject("p119"),
                q120: NullableObject? = NullableObject("p120"),
                q121: NullableObject? = NullableObject("p121"),
                q122: NullableObject? = NullableObject("p122"),
                q123: NullableObject? = NullableObject("p123"),
                q124: NullableObject? = NullableObject("p124"),
                q125: NullableObject? = NullableObject("p125"),
                q126: NullableObject? = NullableObject("p126"),
                q127: NullableObject? = NullableObject("p127"),
                q128: NullableObject? = NullableObject("p128"),
                q129: NullableObject? = NullableObject("p129"),
                q130: NullableObject? = NullableObject("p130"),
                q131: NullableObject? = NullableObject("p131"),
                q132: NullableObject? = NullableObject("p132"),
                q133: NullableObject? = NullableObject("p133"),
                q134: NullableObject? = NullableObject("p134"),
                q135: NullableObject? = NullableObject("p135"),
                q136: NullableObject? = NullableObject("p136"),
                q137: NullableObject? = NullableObject("p137"),
                q138: NullableObject? = NullableObject("p138"),
                q139: NullableObject? = NullableObject("p139"),
                q140: NullableObject? = NullableObject("p140"),
                q141: NullableObject? = NullableObject("p141"),
                q142: NullableObject? = NullableObject("p142"),
                q143: NullableObject? = NullableObject("p143"),
                q144: NullableObject? = NullableObject("p144"),
                q145: NullableObject? = NullableObject("p145"),
                q146: NullableObject? = NullableObject("p146"),
                q147: NullableObject? = NullableObject("p147"),
                q148: NullableObject? = NullableObject("p148"),
                q149: NullableObject? = NullableObject("p149"),
                q150: NullableObject? = NullableObject("p150"),
                q151: NullableObject? = NullableObject("p151"),
                q152: NullableObject? = NullableObject("p152"),
                q153: NullableObject? = NullableObject("p153"),
                q154: NullableObject? = NullableObject("p154"),
                q155: NullableObject? = NullableObject("p155"),
                q156: NullableObject? = NullableObject("p156"),
                q157: NullableObject? = NullableObject("p157"),
                q158: NullableObject? = NullableObject("p158"),
                q159: NullableObject? = NullableObject("p159"),
                q160: NullableObject? = NullableObject("p160"),
                q161: NullableObject? = NullableObject("p161"),
                q162: NullableObject? = NullableObject("p162"),
                q163: NullableObject? = NullableObject("p163"),
                q164: NullableObject? = NullableObject("p164"),
                q165: NullableObject? = NullableObject("p165"),
                q166: NullableObject? = NullableObject("p166"),
                q167: NullableObject? = NullableObject("p167"),
                q168: NullableObject? = NullableObject("p168"),
                q169: NullableObject? = NullableObject("p169"),
                q170: NullableObject? = NullableObject("p170"),
                q171: NullableObject? = NullableObject("p171"),
                q172: NullableObject? = NullableObject("p172"),
                q173: NullableObject? = NullableObject("p173"),
                q174: NullableObject? = NullableObject("p174"),
                q175: NullableObject? = NullableObject("p175"),
                q176: NullableObject? = NullableObject("p176"),
                q177: NullableObject? = NullableObject("p177"),
                q178: NullableObject? = NullableObject("p178"),
                q179: NullableObject? = NullableObject("p179"),
                q180: NullableObject? = NullableObject("p180"),
                q181: NullableObject? = NullableObject("p181"),
                q182: NullableObject? = NullableObject("p182"),
                q183: NullableObject? = NullableObject("p183"),
                q184: NullableObject? = NullableObject("p184"),
                q185: NullableObject? = NullableObject("p185"),
                q186: NullableObject? = NullableObject("p186"),
                q187: NullableObject? = NullableObject("p187"),
                q188: NullableObject? = NullableObject("p188"),
                q189: NullableObject? = NullableObject("p189"),
                q190: NullableObject? = NullableObject("p190"),
                q191: NullableObject? = NullableObject("p191"),
                q192: NullableObject? = NullableObject("p192"),
                q193: NullableObject? = NullableObject("p193"),
                q194: NullableObject? = NullableObject("p194"),
                q195: NullableObject? = NullableObject("p195"),
                q196: NullableObject? = NullableObject("p196"),
                q197: NullableObject? = NullableObject("p197"),
                q198: NullableObject? = NullableObject("p198"),
                q199: NullableObject? = NullableObject("p199"),
                q200: NullableObject? = NullableObject("p200"),
                q201: NullableObject? = NullableObject("p201"),
                q202: NullableObject? = NullableObject("p202"),
                q203: NullableObject? = NullableObject("p203"),
                q204: NullableObject? = NullableObject("p204"),
                q205: NullableObject? = NullableObject("p205"),
                q206: NullableObject? = NullableObject("p206"),
                q207: NullableObject? = NullableObject("p207"),
                q208: NullableObject? = NullableObject("p208"),
                q209: NullableObject? = NullableObject("p209"),
                q210: NullableObject? = NullableObject("p210"),
                q211: NullableObject? = NullableObject("p211"),
                q212: NullableObject? = NullableObject("p212"),
                q213: NullableObject? = NullableObject("p213"),
                q214: NullableObject? = NullableObject("p214"),
                q215: NullableObject? = NullableObject("p215"),
                q216: NullableObject? = NullableObject("p216"),
                q217: NullableObject? = NullableObject("p217"),
                q218: NullableObject? = NullableObject("p218"),
                q219: NullableObject? = NullableObject("p219"),
                q220: NullableObject? = NullableObject("p220"),
                q221: NullableObject? = NullableObject("p221"),
                q222: NullableObject? = NullableObject("p222"),
                q223: NullableObject? = NullableObject("p223"),
                q224: NullableObject? = NullableObject("p224"),
                q225: NullableObject? = NullableObject("p225"),
                q226: NullableObject? = NullableObject("p226"),
                q227: NullableObject? = NullableObject("p227"),
                q228: NullableObject? = NullableObject("p228"),
                q229: NullableObject? = NullableObject("p229"),
                q230: NullableObject? = NullableObject("p230"),
                q231: NullableObject? = NullableObject("p231"),
                q232: NullableObject? = NullableObject("p232"),
                q233: NullableObject? = NullableObject("p233"),
                q234: NullableObject? = NullableObject("p234"),
                q235: NullableObject? = NullableObject("p235"),
                q236: NullableObject? = NullableObject("p236"),
                q237: NullableObject? = NullableObject("p237"),
                q238: NullableObject? = NullableObject("p238"),
                q239: NullableObject? = NullableObject("p239"),
                q240: NullableObject? = NullableObject("p240"),
                q241: NullableObject? = NullableObject("p241"),
                q242: NullableObject? = NullableObject("p242"),
                q243: NullableObject? = NullableObject("p243")
            ) = DstMax(
                q000,
                q001,
                q002,
                q003,
                q004,
                q005,
                q006,
                q007,
                q008,
                q009,
                q010,
                q011,
                q012,
                q013,
                q014,
                q015,
                q016,
                q017,
                q018,
                q019,
                q020,
                q021,
                q022,
                q023,
                q024,
                q025,
                q026,
                q027,
                q028,
                q029,
                q030,
                q031,
                q032,
                q033,
                q034,
                q035,
                q036,
                q037,
                q038,
                q039,
                q040,
                q041,
                q042,
                q043,
                q044,
                q045,
                q046,
                q047,
                q048,
                q049,
                q050,
                q051,
                q052,
                q053,
                q054,
                q055,
                q056,
                q057,
                q058,
                q059,
                q060,
                q061,
                q062,
                q063,
                q064,
                q065,
                q066,
                q067,
                q068,
                q069,
                q070,
                q071,
                q072,
                q073,
                q074,
                q075,
                q076,
                q077,
                q078,
                q079,
                q080,
                q081,
                q082,
                q083,
                q084,
                q085,
                q086,
                q087,
                q088,
                q089,
                q090,
                q091,
                q092,
                q093,
                q094,
                q095,
                q096,
                q097,
                q098,
                q099,
                q100,
                q101,
                q102,
                q103,
                q104,
                q105,
                q106,
                q107,
                q108,
                q109,
                q110,
                q111,
                q112,
                q113,
                q114,
                q115,
                q116,
                q117,
                q118,
                q119,
                q120,
                q121,
                q122,
                q123,
                q124,
                q125,
                q126,
                q127,
                q128,
                q129,
                q130,
                q131,
                q132,
                q133,
                q134,
                q135,
                q136,
                q137,
                q138,
                q139,
                q140,
                q141,
                q142,
                q143,
                q144,
                q145,
                q146,
                q147,
                q148,
                q149,
                q150,
                q151,
                q152,
                q153,
                q154,
                q155,
                q156,
                q157,
                q158,
                q159,
                q160,
                q161,
                q162,
                q163,
                q164,
                q165,
                q166,
                q167,
                q168,
                q169,
                q170,
                q171,
                q172,
                q173,
                q174,
                q175,
                q176,
                q177,
                q178,
                q179,
                q180,
                q181,
                q182,
                q183,
                q184,
                q185,
                q186,
                q187,
                q188,
                q189,
                q190,
                q191,
                q192,
                q193,
                q194,
                q195,
                q196,
                q197,
                q198,
                q199,
                q200,
                q201,
                q202,
                q203,
                q204,
                q205,
                q206,
                q207,
                q208,
                q209,
                q210,
                q211,
                q212,
                q213,
                q214,
                q215,
                q216,
                q217,
                q218,
                q219,
                q220,
                q221,
                q222,
                q223,
                q224,
                q225,
                q226,
                q227,
                q228,
                q229,
                q230,
                q231,
                q232,
                q233,
                q234,
                q235,
                q236,
                q237,
                q238,
                q239,
                q240,
                q241,
                q242,
                q243
            )
        }
    }

    @Test
    fun testMax() {
        assertReflectEquals(DstMax.creator(), defaultMapper.readValue<DstMax>("{}"))
    }
}
